<template>
	<view class="con">
		<!-- logo -->
		<view class="logo">
			<image src="@/static/xinqidian.png" />
		</view>
		 
		<view style="width: 100%;float: left;height: 50px;text-align: center;">
			<position-picker class="position-picker" @update-region="regionChange"></position-picker>
			<view style="width: 50%;float: left;height: 3rpx;background: #666666;margin-left: 25%;margin-top: 20rpx;"></view>
		</view>
		<view style="width: 100%;float: left;height: 50px;text-align: center;">
			<input placeholder="请选择小区" v-model="user.communityStr" style="width: 100%;line-height: 40rpx;float: left;"  @click="selectAddress" disabled />
			<view style="width: 50%;float: left;height: 3rpx;background: #666666;margin-left: 25%;margin-top: 20rpx;"></view>
		</view>
		<!-- 登录 -->
		<view class="authorized">
			<!-- 判断协议 -->
			<button class="authorized-btn" v-if="!agree_flag" @click="checkAgree">手机快捷登录</button>
			<!-- 手机号获取 -->
			<button class="authorized-btn" v-else open-type="getPhoneNumber"
				@getphonenumber="getphoneNumber">手机快捷登录</button>
			<!-- 协议勾选 -->
			<view class="authorized-protocol">
				<view class="agree_img" @click="changeAgreeFlag" v-show="!agree_flag">
					<image src="@/static/images/login/unagree_protocol.png">
					</image>
				</view>
				<view class="agree_img" @click="changeAgreeFlag" v-show="agree_flag">
					<image src="@/static/images/login/agree_protocol.png">
					</image>
				</view>
				<view class="agree_text">
					登录代表您已同意
					<span @click="toggle()">《用户注册协议》</span>
				</view>
			</view>
		</view>

		<uni-popup ref="popup" background-color="#fff">
			<view class="popup-content" :class="{ 'popup-height': type === 'left' || type === 'right' }">
				<view class="xieyi_title">
					用户注册协议
					<image src="../../static/close.png" class="xieyi_img" @click="closeToggle"></image>
				</view>
				<view class="xieyi_content">
					在此特别提醒您在注册成为济宁市爱在三十七度信息科技有限责任公司(以下简称“心起点数字化社区")用户之前，请认真阅读本《济宁市爱在三十七度信息科技有限责任公司用户注册协议》协议(以下简称“协议”)，确保您

					充分理解本协议中各条款，请您审慎阅读并选择接受或不接受本协议，您同意并点击确认本协议条款且完成注册程序后，才能成为心起点数字化社区的正式注册用户，并接受心起点数字化社区的各类服务。您的注册，登录，使用等行为将视为对本协议的接受，并同意接

					受本协议各项条款的约束。若您不同意本协议，或对本协议中的条款存在任何疑问，请您立即停止心起点数字化社区用户注册程序，并可以选择不使用心起点数字化社区、本协议条款是心起点数字化社区对用户相关政策的许诺，请您务必仔细阅读。<br />
					1.用户信息采集<br />
					当您在本平台进行用户注册登记，使用本平台的服务，以及参加本平台的活动时，即为您同意本平台将收集您的个人信息，并保存记录。本平台收集的个人信息包括但不限于:姓名、性别、生日、城市，手机电话、收货地址；

					取货时需获取用户人脸信息等，您主动提供的信息越多及越准确，我们就能够更好地为您提供有关服务。
					2.用户信息的使用<br />
					本平台收集个人信息的基本目的是为了更好的了解我们的用户，以便向您提供特色服务和个性化服务。个人信息将主要用于以下几个目的:<br />
					(1)完成您对特定服务或产品的要求。<br />
					(2)在我们提供服务时，用于身份验证、客户服务、安全防范，诈骗监测，存档和备份用途，确保我们向您提供的产品和服务的安全性。<br />
					(3)帮助我们设计新服务，改善我们现有服务。<br />
					(4)使我们更加了解您如何接入和使用我们的服务，从而针对性地回应您的个性化需求，例如语言设定、位置设定，个性化的帮助服务和指示，或对您和其他用户作出其他方面的回应。<br />
					(5)用于对本平台用户数据的统计(如用户数量、构成、兴趣、表现等），以便我们向用户提供更好的服务和产品，或向第三方为了一定的合法目的披露该类统计数据。该类统计数据都是用户群整体的信息，而非个人的信息。

					<br />
					(6)让您参与有关我们产品和服务的调查。为了让您有更好的体验，改善我们的服务或您同意的其他用途，在符合相关法律法规的前提下，我们可能将通过某一项服务所收集的信息，以汇集信息或者个性化的方式用于我们的其

					他服务。例如:在您使用我们的一项服务时所收集的信息，可能在另一服务中用于向您提供特定内容，或向您展示与您相关的、非普遍推送的信息。如果我们在相关服务中提供了相应选项，您也可以授权我们将该服务所提供和储存的信息用于我们的其他服务。<br />
					3.用户信息的共享和披露<br />
					心起点数字化社区所收集您的个人信息，将仅用于心起点数字化社区为您提供相关服务。一般情况下，在未得到您的同意之前，您的任何个人信息将不会被提供给无关的第三方。在下列情况下，我们可能会将您的个人信息提

					供给有关的第三方:<br />
					（1）本平台的某些服务需由一个合作伙伴（如代理公司、提供相关技术服务的公司、运输公司、邮寄公司、提供奖品的公司等）提供或共同提供。为了向您提供此类服务，本网站有必要与该合作伙伴分享您的个人信息。如果

					您不希望您的信息被分享，您可以不使用该具体服务从而拒绝您的个人信息披露。<br />
					（2）本平台可能会与第三方共同进行推广活动。在推广活动中所收集的全部或部分个人信息可能会与该第三方分享。如果您不想让您的信息被分享，您可以通过不参加该推广活动而拒绝。<br />
					(3)根据法律法规或政府的强制性规定，我们必须向有关司法或政府部门提供您的个人信息。<br />
					(4)为了防止他人的合法权益或社会公共利益受到重大危害。<br />
					(5)为了防上您的合法权益受到重大危害。<br />
					(6)我们发现您的行为违反了本平台的服务条款或关于特定服务或产品的任何使用指引，或对心起点数字化社区信息的合法权益构成重大危害。<br />
					4.用户管理<br />
					您可以在任何时候通过使用您的本平台的注册用户名和密码，查询，补充或更正您的本平台账户中的个人信息，或要求删除您的本平台账户中的个人信息。您在本平台的帐户可以被删除，但这样会导致您不能够登录本平台及

					使用本平台的任何服务。若发现任何非法使用用户帐号或存在安全漏洞的情况，请立即通知本站并向公安机关报案。因用户未妥善保管其帐号名称及密码而导致第三人使用帐号而给用户造成的损失，由用户自行承担。用户在注册及使用时应承诺遵守法律法规、社会主义

					制度、国家利益、公民合法权益、公共秩序、社会道德风尚和信息真实性等七条底线，且用户对其发布的内容（包括但不限于文字、图片等）时，不得有以下情形<br />
					(1)违反宪法或法律法规规定的；<br />
					(2)危害国家安全，泄露国家秘密，颠覆国家政权，破坏国家统一的；<br />
					(3)损害国家荣誉和利益的，损害公共利益的；<br />
					(4)煽动民族仇恨、民族歧视，破坏民族团结的；<br />
					(5)破坏国家宗教政策，宣扬邪教和封建迷信的；<br />
					(6)散布谣言，扰乱社会秩序，破坏社会稳定的；<br />
					(7)散布淫秽、色情、赌博、暴力、凶杀、恐怖或者教唆犯罪的；<br />
					(8)侮辱或者诽谤他人，侵害他人合法权益的；<br />
					(9)含有法律、行政法规禁止的其他内容或违反心起点数字化社区其他规定的。用户以虚假信息骗取账号名称注册，或其帐号头像、简介等注册信息存在违法和不良信息的，心起点数字化社区有权采取通知限期改正、暂停使用

					、注销登记等措施，心起点数字化社区账号仅限于用户本人使用，严禁将您的心起点数字化社区帐号允许第三人使用，否则用户应承担由此产生的全部责任，并与实际使用人承担连带责任。<br />
					5.信息安全<br />
					您的本平台帐户信息和本平台档案通过密码来保护，只有您个人才有权获取这些个人信息。我们建议您不要向任何他人泄密您的密码。本平台也不会主动致电或主动发电子邮件给您来询问您的密码，如果您遇到此类情况请及

					时与心起点数字化社区客服联系确认。同时，请您在完成工作后，务必退出您的本平台帐户并关闭您的浏览器窗口，以便当您与他人合用一台电脑，或正在公共场所使用电脑时，保证他人无法获取您的个人信息和往来通信。遗憾的是，任何通过互联网或无线网络的数据

					传输都无法获得绝对的安全保证。所以，在我们尽最大努力来保护您的个人信息的同时，本平台不能对您向我们进行的信息传输，或我们所发的在线产品或服务的信息的安全作出肯定或保证。您作出上述行为时将自己承担风险。一旦我们收到您传输来的信息，我们将尽

					展大努力保证其在我们系统的安全。<br />
					6.用户隐私制度<br />
					我们会在您自愿的前提下收集您的个人信息并将这些信息进行整合，包括但不限于注册帐号时的相关信息和活动报名信息等。尊重用户个人隐私是心起点数字化社区的一项基本制度。所以，心起点数字化社区不会公开或向任

					何第三方透露用户的注册资料以及用户因享受心起点数字化社区服务而提供的任何信息，但以下情形除外:<br />
					(1)事先获得用户的明确授权或许可；<br />
					(2)遵守有关法律规定，包括在国家有关机关查询时，提供用户的注册信息、用户在本站发布的信息内容及其发布时间、互联网地址或者域名等；<br />
					(3)在紧急情况下竭力维护用户个人和社会大众的隐私安全；<br />
					(4)根据本条款相关规定或者心起点数字化社区认为必要的其他情形。心起点数字化社区可能会与第三方合作向用户提供相关的网络服务，在此情况下，如该第三方同意承担与心起点数字化社区同等的保护用户隐私的责任，则

					心起点数字化社区可将用户信息提供给该第三方。<br />
					7.所有权及知识产权条款<br />
					本平台由心起点数字化社区拥有和运作。本平台公开或显示的所有内容，包括但不限于文字、图表、照片、图像、动画、音效、插图及平台(简称“内容”)等，均属心起点数字化社区及其许可人或内容供应商所有。本平台内

					的所有组成要素，包括但不限于整体设计及“内容”，均受商业外观、版权、道德规范，商标及其它所有相关知识产权的法律保护。除非依据本条款与条件或与经心起点数字化社区在其它协议的声明同意外，本平台内的任何部分或组成要素或“内容”均不得以任何方式

					复制或传播。除非有明确协议同意，否则平台中的"内容”及一切相关权利将为心起点数字化社区成员或其许可人的资产。<br />
					8.责任限制<br />
					除非另有明确的书面说明，本站及其所包含的或以其它方式通过本站提供给您的全部信息、内容、材料、产品（包括平台）和服务，均是在"按现状"和"按现有"的基础上提供的。除非另有明确的书面说明，我们不对本站的运

					营及其包含在本站上的信息、内容、材料、产品；包括平台或服务作任何形式的、明示或默示的声明或担保(根据中华人民共和国法律另有规定的以外)。我们不担保本站所包含的或以其它方式通过本站提供给您的全部信息、内容、材料、产品（包括平台）和服务、其服

					务器或从本站发出的电子信件、信息没有病毒或其他有害成分。如因不可抗力或其它本站无法控制的原因使本站服务系统崩溃或无法正常使用导致服务不可用或网上交易无法完成或丢失有关的信息、记录等，我们会合理地尽力协助处理善后事宜。<br />
					9.免责声明<br />
					客户明确同意使用心起点数字化社区服务的风险由客户承担。心起点数字化社区明确表示不提供任何类型的担保，不论是明确的或隐含的。心起点数字化社区将尽力维护客户使用心起点数字化社区服务的合法权益，但不担保

					心起点数字化社区服务一定能满足客户的要求，也不担保服务的及时性、安全性、真实性、稳定性、正确性。对客户使用该等服务中出现的信息（包括但不限于客户发布的信息）删除或储存失败，心起点数字化社区亦不承担任何责任。客户理解并接受下载或通过相应产

					品服务取得的任何信息资料取决于客户自己，并自行承担系统受损、资料丢失以及其他任何风险，心起点数字化社区对客户在互联网上得到的任何商品购物，交易进程、招聘信息等，都不作担保。心起点数字化社区对直接、间接、偶然、特殊及继起的损害不负责任，这

					些损害来自:不正当使用心起点数字化社区服务或应用服务，在网上购买商品或类似服务，在网上进行交易，非法使用服务或客户传送的信息有所变动。心起点数字化社区对本项服务下涉及的境内外基础运营商的通信网络的故障、技术缺陷、覆盖范围限制、不可抗力、计

					算机病毒、黑客攻击、客户所在位置、客户关机或其他非心起点数字化社区技术能力范围内的事因等造成的服务中断、客户邮件内容丢失、出现乱码、错误接收、无法接收、迟延接收不承担责任。心起点数字化社区保留判定客户的行为是否符合本服务协议要求的权利，

					如果客户违背了本服务协议的规定，心起点数字化社区有权终止或终止相应心起点数字化社区:转户规定:如果客户将于机号码转让给他人，请用户提前自行删除心起点数字化社区内资料。否则，受让该号码的客户将能够查看您的客户个人数据。心起点数字化社区不承担

					由此引发的客户数据丢失等责任及纠纷。<br />
					10.协议更新及用户关注义务<br />
					根据国家法律法规的更新及网站运营需要，我们有权对本条款不时地进行修改，修改后的服务条款一旦被张贴在本站上即生效力，并代替原来的服务条款。用户可随时登录查阅最新服务条款内容。如用户不同意更新后的服务

					条款，应立即停止接受本站提供的服务；如用户继续使用本站提供的服务，即视为同意更新后的用户协议，我们建议您在使用本站之前阅读本用户协议及本站的公告。如果本用户协议中任何一条被视为废止无效或因任何理由不可执行，该条应视为独立的且并不影响任何

					其余协议的有效性和可执行性。<br />
					11.法律管辖和适用<br />
					本用户协议的订立、执行和解释及争议的解决均应适用在中华人民共和国大陆地区现行之有效法律。如发生本服务条款的某些内容与适用之法律相抵触时，则这些条款将完全按法律规定重新解释，而其它有效条款继续有效。

					如缔约方就本条款内容或其执行发生任何争议，双方应尽力友好协商解决；协商不成时，任何一方均可向济宁市爱在三十七度信息科技有限责任公司所在地的中华人民共和国大陆地区法院提起诉讼。<br />
					12.其他<br />
					我们尊重用户和消费者的合法权利，本用户协议及本站上发布的各类规则、政策，声明等其他内容，均是为了更好的、更加便利的为用户和消费者提供服务。心起点数字化社区欢迎用户和社会各界提出意见和建议，我们将虚

					心接受并适时修改本服务条款及相关政策、规则。您完成注册且成为心起点数字化社区的注册用户则意味着您完全接受本用户协议，在注册之前请您再次确认已知悉并完全理解本用户协议的全部内容。
				</view>
			</view>
		</uni-popup>


	</view>
</template>

<script setup>
	console.log("getApp().globalData.shareId",getApp().globalData.shareId)
	import http from '../../utils/http';
	import {
		getCurrentInstance
	} from 'vue'
	const user = ref({
		openid: getApp().globalData.user.openid,
		// userId: generateUserId() + getApp().globalData.user.openid,
		phone: "",
		province: "",
		city:"",
		district:"",
		community: "",
		administrator: 0,
		cityPartner: 0,
		butler: 0,
		shop: 0,
		assistant: 0,
		lawyer: 0,
		butlerUserId: getApp().globalData.shareId?getApp().globalData.shareId:null,
		cityPartnerUserId: null,
		date: "",
		account: 0,
		communityStr:""
	})
	const region=ref("请选择区域");
	function regionChange(e) {
		console.log(e)
		// console.log("position", e[0] + "-" + e[1] + "-" + e[2])
		// applicationContent.value.region = e[0] + "-" + e[1] + "-" + e[2]
		user.value.province = e[0];
		user.value.city = e[1];
		user.value.district = e[2];
		//region.value=e.detail.value[0]+"-"+e.detail.value[1]+"-"+e.detail.value[2];
	}
	function selectAddress()
	{
		uni.chooseLocation({
			success(res){
				console.log(res);
				user.value.communityStr=res.name
			},
			fail(res) {
				console.log(res);
				uni.showToast({
					icon: "none",
					title: "位置获取失败!"
				})
			}
		}) 
	}
	
	// 获取当前组件实例
	const {
		ctx
	} = getCurrentInstance();

	const session_key = ref("")
	const phoneNumber = ref(null)
	const agree_flag = ref(false)
	// 绑定地区
	function updateRegion(val) {
		console.log("val", val)
		// 每一次选择地区都将社区的值还原
		community.value = "请选择社区"
		// user.value.position = val[0] + '-' + val[1] + '-' + val[2]
		user.value.province = val[0]
		user.value.city = val[1]
		user.value.district = val[2]
		// 绑定地区后查询数据库中对应的社区名
		getCityPartnerUserIdByCity(val[1])
		getCommunityList(val[0], val[1], val[2])
	}
	// 获取城市合伙人Id
	function getCityPartnerUserIdByCity(city){
		http.request({
			url:"/api/user/get_cityPartner_user_id_by_city",
			method:"POST",
			data:{
				"city": city
			}
		}).then((responseData) => {
			if (responseData.code) {
				console.log("cityPartner id : ", responseData.data)
				user.value.cityPartnerUserId = responseData.data
			} else {
				uni.showToast({
					icon: 'error',
					title: responseData.message,
					duration: 3000
				})
			}
		}).catch((err) => {
			uni.showToast({
				icon: 'error',
				title: '请求失败'
			})
		})
	}
	// 获取社区信息
	function getCommunityList(province, city, district) {
		http.request({
			url: "/api/user/get_community_list",
			method: "POST",
			data: {
				"province": province,
				"city": city,
				"district": district
			}
		}).then((responseData) => {
			if (responseData.code) {
				console.log("community", responseData.data)
				communityArray.value = responseData.data
			} else {
				uni.showToast({
					icon: 'error',
					title: responseData.message,
					duration: 3000
				})
				communityArray.value = []
			}
		}).catch((err) => {
			uni.showToast({
				icon: 'error',
				title: '请求失败'
			})
		})
	}
	// 绑定社区
	const communityArray = ref([])
	const community = ref("请选择社区")

	function communityChange(e) {
		community.value = communityArray.value[e.detail.value]
		user.value.community = communityArray.value[e.detail.value]
	}

	// 勾选协议的点击时间，改变true和false
	function changeAgreeFlag() {
		agree_flag.value = !agree_flag.value
	}
	// 判断协议是否勾选
	function checkAgree() {
		if(user.value.province==""){
			uni.showToast({
				icon: 'error',
				title: "请选择区域",
			})
			return
		}
		
		if(user.value.communityStr==""){
			uni.showToast({
				icon: 'error',
				title: "请选择小区",
			})
			return
		}
		
		if (!agree_flag.value) {
			uni.showToast({
				icon: 'error',
				title: "请阅读协议",
			})
			return
		} 
	}
	// 生成用户ID
	function generateUserId() {
		const timestamp = Date.now().toString(); // 毫秒级时间戳
		const random = Math.random().toString(36).substring(2, 12); // 增加随机字符串的长度
		return `${timestamp}${random}`;
	};
	// 快捷登录手机号接口，调用后端接口获取手机号
	function getphoneNumber(e) {
		if (e.detail.errMsg === "getPhoneNumber:fail user deny") {
			console.log("用户点击了取消");
			uni.showToast({
				icon:'error',
				title:"请获取手机号"
			})
		} else {
			console.log("用户点击了允许");
			console.log("encryptedData", e.detail.encryptedData)
			console.log("iv", e.detail.iv)
			http.request({
				url: '/api/user/get_phone',
				method: 'POST',
				data: {
					code: e.detail.code,
					iv: e.detail.iv,
					encryptedData: e.detail.encryptedData,
					session_key: session_key.value
				}
			}).then((responseData) => {
				if (responseData.code) {
					console.log("手机号为", responseData.data)
					user.value.phone = responseData.data
					// const ret = {
					// 	phone: phoneNumber.value,
					// }
					// uni.$emit('ret', ret);
					// uni.navigateBack();
					checkForm()
				} else {
					uni.showToast({
						icon: 'error',
						title: responseData.message,
						duration: 3000
					})
				}

			}).catch((err) => {
				console.log("err", err)
			});
		}
	}
	// 表单验证
	function checkForm() {
		// 检查用户位置是否为空
		// if (!user.value.city) {
		// 	// 如果位置为空，显示错误提示
		// 	uni.showToast({
		// 		icon: 'error',
		// 		title: '请绑定地区'
		// 	});
		// 	// 提前返回，防止继续执行
		// 	return;
		// }

		// 如果所有验证通过则执行插入
		insertUser()

	}

	function insertUser() {
		if(!user.value.openid){
			wx.switchTab({
			  url: "/pages/home/home",
			  success: function(res) {
			    // 跳转成功
			  },
			  fail: function(err) {
			    // 错误处理
			  }
			})
			return;
		}
		console.log("user", user.value)
		http.request({
			url: "/api/user/insert_user_info",
			method: "POST",
			data: {
				"user": user.value
			}
		}).then((responseData) => {
			if (responseData.code) {
				console.log("response", responseData.data)
				getApp().getUserInfo();
				uni.showToast({
					icon: 'success',
					title: responseData.data,
					duration: 3000
				})
				
				// 导航返回上一个页面
				setTimeout(() => {
					uni.navigateBack();
				}, 3000); // 延迟3秒后返回
			} else {
				uni.showToast({
					icon: 'error',
					title: responseData.message,
					duration: 3000
				})
			}
		})
	}
	//查看用户协议
	function toggle() {
		// open 方法传入参数 等同在 uni-popup 组件上绑定 type属性
		ctx.$refs.popup.open('center')
	}
	//关闭协议
	function closeToggle() {
		ctx.$refs.popup.close();
	}

	import {
		onLoad,
	  	onPageScroll
	} from '@dcloudio/uni-app';
	onLoad((query) => {
		if(!getApp().globalData.user.openid){
			console.log("1111111111111111111111111111111111")
			uni.login({
				"provider": "weixin",
				// "onlyAuthorize": true, // 微信登录仅请求授权认证
				success: (loginRes) => {
					//客户端成功获取授权临时票据（code）,向业务服务器发起登录请求。
					console.log("code", loginRes.code)
					http.request({
						url: '/api/user/get_user_info',
						method: 'POST',
						data: {
							code: loginRes.code
						}
					}).then((responseData) => {
						console.log("21321")
						getApp().globalData.user = responseData.data ;
						user.value.openid=getApp().globalData.user.openid
						console.log("10086",getApp().globalData.user)
						if (getApp().globalData.user.phone) {
							const pageSize= getCurrentPages().nv_length;
							if(pageSize==1){
								wx.switchTab({
								  url: "/pages/home/home",
								  success: function(res) {
								    // 跳转成功
								  },
								  fail: function(err) {
								    // 错误处理
								  }
								})
								return;
							} 
							uni.navigateBack()
						}
						console.log("global", getApp().globalData)
						//  这里应该还去判断用户的社区等信息是否存在，如果不存在可以来个提示绑定一下
					}).catch((err) => {
						// 在这里处理请求失败的情况
						console.log("err", err)
					});
				},
				fail: (ee) => {
					console.log("ee", ee)
				}
			})
		}
		
		console.log("~~~~~~~~~~~~~~~",getApp().globalData.user.openid); 
	}) 
</script>

<style scoped lang="scss">
	@import "./login.scss";
	@import "./xieyi.scss"; 
</style>